package com.turnengine.client.local.action.bean;

import com.javabi.codebuilder.generated.IGeneratedBean;
import com.turnengine.client.local.action.enums.ActionConditionExecute;
import com.turnengine.client.local.action.enums.ActionConditionMandatory;
import com.turnengine.client.local.action.enums.ActionConditionType;
import com.turnengine.client.local.action.enums.ActionTargetType;

/**
 * The I Action Condition.
 */
public interface IActionCondition extends IGeneratedBean, Comparable<IActionCondition> {

	/**
	 * Returns the action id.
	 * @return the action id.
	 */
	int getActionId();

	/**
	 * Returns the target type.
	 * @return the target type.
	 */
	ActionTargetType getTargetType();

	/**
	 * Returns the type.
	 * @return the type.
	 */
	ActionConditionType getType();

	/**
	 * Returns the execute.
	 * @return the execute.
	 */
	ActionConditionExecute getExecute();

	/**
	 * Returns the mandatory.
	 * @return the mandatory.
	 */
	ActionConditionMandatory getMandatory();

	/**
	 * Returns the condition id.
	 * @return the condition id.
	 */
	int getConditionId();

	/**
	 * Returns the condition amount.
	 * @return the condition amount.
	 */
	long getConditionAmount();

	/**
	 * Sets the action id.
	 * @param actionId the action id to set.
	 */
	void setActionId(int actionId);

	/**
	 * Sets the target type.
	 * @param targetType the target type to set.
	 */
	void setTargetType(ActionTargetType targetType);

	/**
	 * Sets the type.
	 * @param type the type to set.
	 */
	void setType(ActionConditionType type);

	/**
	 * Sets the execute.
	 * @param execute the execute to set.
	 */
	void setExecute(ActionConditionExecute execute);

	/**
	 * Sets the mandatory.
	 * @param mandatory the mandatory to set.
	 */
	void setMandatory(ActionConditionMandatory mandatory);

	/**
	 * Sets the condition id.
	 * @param conditionId the condition id to set.
	 */
	void setConditionId(int conditionId);

	/**
	 * Sets the condition amount.
	 * @param conditionAmount the condition amount to set.
	 */
	void setConditionAmount(long conditionAmount);
}
